import { getUserById,updUserById } from '../../../api/personalcenter'
import {reqLogout} from '../../../api/user'
Page({
  /**
   * 页面的初始数据
   */
  data: {
    avatar: '/assets/我的功能图片/未登录的用户头像.png', // 初始化头像路径
    userinfo:{privaryIdCard:''},
    newHeadImg:'',//新选的头像
    newName:'',
    newPhone:'',
    newIdcard:'',
    changePhone:false,
    changeName:false,
    changeIdcard:false,
    // 控制弹框显示/隐藏
    showLogoutPopup: false,
    token:'',
  },

  onusers(){
    const userid=wx.getStorageSync('userid');
    const userInfo=wx.getStorageSync('userInfo');
    const token=wx.getStorageSync('token')
    if(token!=null){
      this.setData({
        userid,
        user:userInfo,
        token
      })
    }
  },


// 显示退出登录弹框
showLogoutPopup() {
  this.setData({
    showLogoutPopup: true
  });
},

// 关闭弹框
onClosetui() {
  this.setData({
    showLogoutPopup: false
  });
},

// 处理退出登录逻辑
async handleLogout() {
  // 1. 关闭弹框
  this.setData({
    showLogoutPopup: false
  });

  const tuichu=await reqLogout()
  if(tuichu=='退出登录成功'){
    wx.showToast({
      title: '退出登录成功',
      icon: 'none'
    })
      // 2. 清除本地存储的用户信息和登录状态
  wx.removeStorageSync('token');
  wx.removeStorageSync('userInfo');
    setTimeout(()=>{
      wx.switchTab({
        url: '/pages/mine/mine',
      })
    },1000)

  }
  
},
  // 点击头像更换头像的事件
  onAvatarTap() {
    const that = this;
    wx.chooseImage({
      count: 1, // 默认9，设置为1表示只能选择一张图片
      sizeType: ['original', 'compressed'], 
      sourceType: ['album', 'camera'], 
      success(res) {
        const tempFilePaths = res.tempFilePaths;
        // 更新头像路径
        that.setData({
            newHeadImg: tempFilePaths[0]
        });
        console.log(res)
        console.log(that.data.userinfo)
      }
    });
  },
  copyUserId(){
    wx.setClipboardData({ //复制
      data: this.data.userinfo.userIdcard,
      success: function(res) {
        wx.showToast({
          title: '已复制到剪切板',
          icon: "none",
          mask: "true"
        })
      }
    })
  },
  // 上传头像到服务器（如果有需要）
  uploadAvatar(filePath) {
    console.log(filePath)
    const that = this;
    if(filePath){
      wx.uploadFile({
        url: 'http://127.0.0.1:8024/wx/upload', 
        filePath: filePath,
        name: 'file',
        formData: {
          'userid': 9, //我只是测试一个死数据
          'avatarPath': filePath
        },
        success(uploadRes) {
          // console.log('头像上传成功', uploadRes);
          let data=JSON.parse(uploadRes.data)
          console.log(data)
          that.setData({
            "userinfo.userProfile":data.data.url
          })
          console.log(that.data.userinfo)
          updUserById(that.data.userinfo).then(data => {
            wx.showToast({
              title: data.data.msg,
            })
          }).catch(error => {
            console.error('请求失败:', error) // 处理错误
          })
        },
        fail(err) {
          console.error('头像上传失败', err);
        }
      });
    }else{
      updUserById(that.data.userinfo).then(data => {
        wx.showToast({
          title: data.data.msg,
        })
      }).catch(error => {
        console.error('请求失败:', error) // 处理错误
      })
    }
   

  },

  //idcard弹出切换
  changeIdcard(){
    this.setData({
      'userinfo.userIdcard':this.data.userinfo.userIdcard,
      changeIdcard:!this.data.changeIdcard
    })
  },


  //点击切换手机号底部弹出
  changePhone(){
    this.setData({
      'userinfo.userPhone':this.data.userinfo.userPhone,
      changePhone:!this.data.changePhone
    })
  },

  changeName(){
    this.setData({
      'userinfo.userName':this.data.userinfo.userName,
      changeName:!this.data.changeName
    })
  },

  newPhone(e){
    this.setData({
      newPhone:e.detail
    })
  },

  newName(e){
    this.setData({
      newName:e.detail
    })
  },

  newIdcard(e){
    this.setData({
      newIdcard:e.detail
    })
  },

  //手机号输入框change事件
  setPhone(){
    // 最新中国手机号正则（2025年有效）
    const regex = /^(?:(?:\+|00)86)?1(?:(?:3[\d])|(?:4[5-79])|(?:5[0-35-9])|(?:6[5-7])|(?:7[0-8])|(?:8[\d])|(?:9[189]))\d{8}$/;
    if (regex.test(this.data.newPhone)) {
      this.setData({
        'userinfo.userPhone':this.data.newPhone,
        changePhone:false
      })
    } else {
      wx.showToast({
        title: '请输入正确手机号',
      })
    }
  },

  setName(){
    this.setData({
      'userinfo.userName':this.data.newName,
      changeName:false
    })
  },

  // 身份证号码验证
  validateIdCard(id) {
    const reg = /^[1-9]\d{5}(19|20)\d{2}((0[1-9])|(1[0-2]))(([0-2][1-9])|10|20|30|31)\d{3}[0-9Xx]$/;
    return reg.test(id);
  },

  setIdcard(){
    //身份证格式验证
    if (!this.validateIdCard(this.data.newIdcard)) {
      wx.showToast({
        title: '身份证格式错误',
        icon: 'none'
      })
      return
    }
    this.setData({
      'userinfo.privaryIdCard':this.data.newIdcard.substring(0,4)+"***********"+this.data.newIdcard.substring(15),
      'userinfo.userIdcard':this.data.newIdcard,
      changeIdcard:false
    })
  },

  //页面加载获得当前登录用户信息
  async getUserById(){
    let users=wx.getStorageSync('userInfo') //获得用户对象
    const data=await getUserById(users.userId)
    const user=data.data.userInfo
    console.log("我的用户信息",user)
    if(user.userIdcard!='' && user.userIdcard!=null){
      user.privaryIdCard=user.userIdcard.substring(0,4)+"***********"+user.userIdcard.substring(15)
    }
    // let privaryIdCard=user.userIdcard.substring(0,4)+"***********"+user.userIdcard.substring(15)
    console.log(user)
    this.setData({
      userinfo:user,
      // 'userinfo.privaryIdCard':privaryIdCard
    })
    // let user = this.data.userinfo
    console.log(this.data.userinfo)
  },

  //保存修改
  async saveInfo(){
    // 上传头像到服务器（用户信息修改被我包里头了）
    this.uploadAvatar(this.data.newHeadImg);
    setTimeout(()=>{
      wx.navigateBack()
    },1500)
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad(options) {
    this.setData({
      token:wx.getStorageSync('token')
    })
    this.getUserById()
    
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady() {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow() {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide() {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload() {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh() {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom() {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage() {

  }
})